#pragma once
#include "EpilObject.h"

class EpilReferenceObject : public EpilObject
{
public:
	EpilReferenceObject( EpilInterpreter * interpreter );
	virtual ~EpilReferenceObject();

	int									GetRefCount() const								{ return m_refCount; }
	void								IncreaseRefCount();
	void								DecreaseRefCount();

	virtual EpilAssignType				GetAssignType() const							{ return EAT_Reference; }

	virtual EpilObject *				CreateCopy();
	virtual void						ReleaseCopy();

	bool								operator==( const EpilObject & rhs ) const;

private:
	int									m_refCount;
};
